﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MemoryDuosControl;

namespace MemoryDuosInterfaz
{
    public partial class GestionPublicidad : Form
    {
        private List<Anuncio> _listaAnuncios;
        private BindingList<Anuncio> listaAnuncios;

        public GestionPublicidad()
        {
            InitializeComponent();
            //this.FormBorderStyle = 0;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            AltaPublicidad altaAnuncio = new AltaPublicidad();
            altaAnuncio.Show();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            List<Anuncio> listaAnuncios2 = _listaAnuncios.Where(p => p.FechaFin < DateTime.Now).Select(p => p).ToList();
            HistorialAnuncios historico = new HistorialAnuncios(listaAnuncios2);
            historico.Show();
        }

        private void GestionPublicidad_Load(object sender, EventArgs e)
        {
            dataGridAnuncios.Rows.Clear();
            _listaAnuncios = AccesoAnuncio.ObtenerAnuncios();
            _listaAnuncios = _listaAnuncios.Where(p => p.FechaFin > DateTime.Now).Select(p => p).ToList();
            listaAnuncios = new BindingList<Anuncio>(_listaAnuncios);
            dataGridAnuncios.DataSource = listaAnuncios;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            var lista = dataGridAnuncios.CurrentRow;
            var indice = -1;
            if (lista != null)
                indice = lista.Index;
            if (indice > -1)
            {
                var anuncio = _listaAnuncios.ElementAt(indice);
                if (anuncio.FechaInicio > DateTime.Now)
                {
                    EstadoPeticion estado = AccesoAnuncio.EliminarAnuncio(anuncio.IDAnuncio);
                    if (estado.Estado == true)
                    {
                        listaAnuncios.RemoveAt(indice);
                    }
                    else MessageBox.Show(estado.Error);
                }
                else MessageBox.Show("El anuncio no se puede eliminar porque es vigente.");
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            EmpresasPublicitarias empresas = new EmpresasPublicitarias();
            empresas.Show();
        }
    }
}
